package user;

import book.BookLise;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import operation.IOperation;

/*
    User类为一个抽象父类
 */

public abstract class User {

    //共有属性：name用户名字
    protected String name;

    //ioPerations为功能数组
    public  IOperation[] ioPerations;

    //构造方法
    public User(String name) {
        this.name = name;
    }


    /*

    抽象方法menu：用于实现各自菜单的打印
                  需要重写
    参数：无
    返回值：用户需要实现的功能根据菜单上的数字进行的返回

    */

    public abstract int menu();

    /*

     toOperation方法:为了实现各自操作操作各自的功能，实现相互独立
                     通过输入用户菜单的选项的数字
                     进而操作功能数组通过下标来确定要实现的操作的方法work
     参数：用户菜单的选项的数字，以及操作的对象
     返回值：无

    */
    public void toOperation(int choice, BookLise bookLise){
        ioPerations[choice].work(bookLise);
    }
}
